package biz

import (
	"context"
	"gitee.com/shuokeyun/item-service/internal/domain"
)

type itemUsecase struct {
	orderRepo domain.ItemRepo
}

// NewItemUsecase .
func NewItemUsecase(repo domain.ItemRepo) domain.ItemUsecase {
	return &itemUsecase{
		orderRepo: repo,
	}
}

// ListItems .
func (o *itemUsecase) ListItems(ctx context.Context, search *domain.SearchItemList) ([]*domain.Item, int32, error) {
	return o.orderRepo.ListItems(ctx, search)
}

// GetItem .
func (o *itemUsecase) GetItem(ctx context.Context, code string, brand, priceArea int32, fields []string) (*domain.Item, error) {
	return o.orderRepo.GetItem(ctx, code, brand, priceArea, fields)
}

// CreateItem .
func (o *itemUsecase) CreateItem(ctx context.Context, do *domain.Item) (re *domain.Item, err error) {
	return o.orderRepo.CreateItem(ctx, do)
}

// UpdateItem .
func (o *itemUsecase) UpdateItem(ctx context.Context, do *domain.Item, mask []string) (re *domain.Item, err error) {
	return o.orderRepo.UpdateItem(ctx, do, mask)
}

// DeleteItem .
func (o *itemUsecase) DeleteItem(ctx context.Context, code string, brand, priceArea int32) error {
	return o.orderRepo.DeleteItem(ctx, code, brand, priceArea)
}

// GetItems .
func (o *itemUsecase) GetItems(ctx context.Context, code []string, brand, priceArea int32, fields []string) ([]*domain.Item, error) {
	return o.orderRepo.GetItems(ctx, code, brand, priceArea, fields)
}
